package com.molichuxing.gateway.api.services;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.molichuxing.gateway.bff.basic.entity.response.*;
import org.springframework.web.multipart.MultipartFile;

import com.molichuxing.framework.dto.UploadFileResponseDto;
import com.molichuxing.framework.result.ResponseResult;

/**
 * 基础数据相关接口
 *
 * @author zhaopenghui
 * @date 2019年9月18日
 */
public interface BasicApiService {

    /**
     * 获取经销商门店城市
     *
     * @return
     * @throws Exception
     */
    public ResponseResult<List<CityInitialVo>> getRegionList() throws Exception;

    /**
     * 根据车型id详细配置参数
     * @param modelId
     * @return
     */
    public ResponseResult<List<CarBaseConfVo>> findCarModelParamByModelId(Integer modelId);

    /**
     * 获取App新版本
     * @param appVersion
     * @param channel
     * @return
     */
    public ResponseResult<VersionMobileVo> getNewestMobile(String appVersion, String channel);

    /**
     * 获取大屏新版本
     * @param reqDto
     * @return
     */
	public ResponseResult<TerminalUpgradedVo> findUpgradeInfo(
			String appVersion, String deviceNum, String chaVersion, String opVersion);
    
    /**
	 * 文件上传-单个
	 * 
	 * @param request
	 * @param file
	 * @param type
	 * @return
	 */
	ResponseResult<UploadFileResponseDto> uploadFile(HttpServletRequest request, MultipartFile file, String type);

	/**
	 * 文件上传-批量
	 * 
	 * @param request
	 * @param file
	 * @param type
	 * @return
	 */
	ResponseResult<List<UploadFileResponseDto>> uploadFileBatch(HttpServletRequest request, MultipartFile[] files,
			String type);


	/***
	 * 获取省市级关系 父子级
	 *
	 * @return
	 */
	ResponseResult<List<RegionCityVo>> getAllCity(Integer level);

	/**
	 * 根据车型id获取提车参数信息
	 * @param modelId
	 * @return
	 */
	ResponseResult<VehicleDeliveryVo> getDeliveryParamDicByModelId(Integer modelId,Long orderCode,Integer carId);
}
